#ifndef CONST_PRPGT_H
#define CONST_PRPGT_H
#include "symbol.h"


#define UNDEF (0.5)
#define NAC   (-0.5)

typedef struct const_prpgt_info{
	double *bound_vals;
	double *init_vals;
	var_t **var_info; // 为了调试
    int cnt;
	struct list_head *inter_code;
	struct dfg *dfg;
	struct list_head optimized_code;
}const_prpgt_info_t;

typedef struct const_prpgt_in_bb{
	double *in_set;
	double *out_set;
	int cnt;
}const_prpgt_in_bb_t;


const_prpgt_info_t *const_prpgt_init(fun_t *fun);
void const_prpgt_destroy(const_prpgt_info_t *cst_prpgt);
void simple_const_prpgt_analyse(const_prpgt_info_t *cst_prpgt);
#endif